package src;

/**
 * @author: jacky
 * create by 2020/12/28
 *
 * 题目：
 * 请实现一个函数，输入一个整数（以二进制串形式），输出该数二进制表示中 1 的个数。例如，把 9 表示成二进制是 1001，有 2 位是 1。因此，如果输入 9，则该函数输出 2。
 *
 *  
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class NumberOf1 {


    private int numberOfOne(int n) {
        int count = 0;
        while(n != 0) {
            count += 1;
            n = (n-1)&n;
        }
        return count;
    }


    public static void main(String[] args) {
        NumberOf1 numberOf1 = new NumberOf1();
       int count =  numberOf1.numberOfOne(9);
        System.out.println(count);
    }


}
